//
//  HSQContactTheMerchantController.m
//  LiTianDecoration
//
//  Created by administrator on 2018/5/11.
//  Copyright © 2018年 administrator. All rights reserved.
//

#define KeyBoardViewH 52

#import "HSQContactTheMerchantController.h"
#import "HSQKeyboardView.h"
#import "WeChatCell.h"
#import "MessageModel.h"
#import "HXPhotoViewController.h"

@interface HSQContactTheMerchantController ()<HSQKeyboardViewDelegate,UITableViewDelegate,UITableViewDataSource,WeChatCellDelegate,HXPhotoViewControllerDelegate,UINavigationControllerDelegate,UIImagePickerControllerDelegate>

@property (nonatomic, strong) HSQKeyboardView *KeyBoardView;

@property (nonatomic, strong) UITableView *tableView;

@property (nonatomic, strong) NSMutableArray *dataSource;

@property (strong, nonatomic) HXPhotoManager *manager;

@end

@implementation HSQContactTheMerchantController

- (void)viewWillAppear:(BOOL)animated{
    
    [super viewWillAppear:animated];
    
    [IQKeyboardManager sharedManager].enableAutoToolbar = NO;
    
    [IQKeyboardManager sharedManager].enable = NO;
}

-(void)viewWillDisappear:(BOOL)animated{
    
    [super viewWillDisappear:animated];
    
    [IQKeyboardManager sharedManager].enableAutoToolbar = YES;
    
    [IQKeyboardManager sharedManager].enable = YES;
}

-(NSMutableArray *)dataSource{
    
    if (_dataSource == nil) {
        
        self.dataSource = [NSMutableArray array];
    }
    
    return _dataSource;
}

- (HXPhotoManager *)manager{
    
    if (!_manager) {
        
        _manager = [[HXPhotoManager alloc] initWithType:HXPhotoManagerSelectedTypePhoto];
    }
    return _manager;
}


- (void)viewDidLoad {
    
    [super viewDidLoad];
    
    self.navigationItem.title = @"联系商家";
    
    self.view.backgroundColor = KViewBackGroupColor;
    
    // 添加tableView
    [self CreatTableView];
    
    // 添加底部的输入框视图
    [self SetUpKeyBoardView];
    
    [self allocList];

}


-(void)allocList{
    
    MessageModel *model01 =[[MessageModel alloc] init];
    model01.showMessageTime=YES;
    model01.messageTime=@"11:22";
    model01.messageText=@"中央军委主席习近平日前签署命令，追授海军某舰载航空兵部队一级飞行员张超“逐梦海天的强军先锋”荣誉称号。2016年4月27日，张超在驾驶歼-15进行陆基模拟着舰训练时，飞机突发电传故障，不幸壮烈牺牲。中央军委号召，全军和武警部队广大官兵要以张超同志为榜样，高举中国特色社会主义伟大旗帜，坚持以邓小平理论、“三个代表”重要思想、科学发展观为指导，深入学习贯彻习主席系列重要讲话精神，团结奋进，锐意创新，扎实工作，为实现强军目标、建设世界一流军队贡献智慧和力量";
    model01.messageSenderType=MessageSenderTypeUser;
    model01.messageType=MessageTypeText;
    [self.dataSource addObject:model01];
    
    
     MessageModel *model02=[[MessageModel alloc] init];
    model02.showMessageTime=NO;
    model02.messageTime=@"11:22";
    model02.messageText=@"中央军委主席习近平日前签署命令，追授海军某舰载航空兵部队一级飞行员张超“逐梦海天的强军先锋”荣誉称号。2016年4月27日，张超在驾驶歼-15进行陆基模拟着舰训练时，飞机突发电传故障，不幸壮烈牺牲。中央军委号召，全军和武警部队广大官兵要以张超同志为榜样，高举中国特色社会主义伟大旗帜，坚持以邓小平理论、“三个代表”重要思想、科学发展观为指导，深入学习贯彻习主席系列重要讲话精神，团结奋进，锐意创新，扎实工作，为实现强军目标、建设世界一流军队贡献智慧和力量";
    model02.messageSenderType=MessageSenderTypeHantu;
    model02.messageType=MessageTypeText;
    [self.dataSource addObject:model02];
    
    MessageModel *model03=[[MessageModel alloc] init];
    model03.showMessageTime=NO;
    model03.messageTime=@"11:22";
    model03.messageText=@"中央军委主席";
    model03.messageSenderType=MessageSenderTypeHantu;
    model03.messageType=MessageTypeText;
    [self.dataSource addObject:model03];
    
    MessageModel *model04=[[MessageModel alloc] init];
    model04.showMessageTime=NO;
    model04.messageTime=@"11:22";
    model04.messageText=@"中央军委主席";
    model04.messageSenderType=MessageSenderTypeHantu;
    model04.messageType=MessageTypeText;
    [self.dataSource addObject:model04];
    
    
    
    
    
    MessageModel *model05=[[MessageModel alloc] init];
    model05.showMessageTime=YES;
    model05.messageTime=@"11:22";
    model05.messageText=@"中央军委主席习近平日前签署命令，追授海军某舰载航空兵部队一级飞行员张超“逐梦海天的强军先锋”荣誉称号。2016年4月27日，张超在驾驶歼-15进行陆基模拟着舰训练时，飞机突发电传故障，不幸壮烈牺牲。中央军委号召，全军和武警部队广大官兵要以张超同志为榜样，高举中国特色社会主义伟大旗帜，坚持以邓小平理论、“三个代表”重要思想、科学发展观为指导，深入学习贯彻习主席系列重要讲话精神，团结奋进，锐意创新，扎实工作，为实现强军目标、建设世界一流军队贡献智慧和力量";
    model05.messageSenderType=MessageSenderTypeUser;
    model05.messageType=MessageTypeText;
    [self.dataSource addObject:model05];
    
    
    
    
    
    MessageModel *model06=[[MessageModel alloc] init];
    model06.showMessageTime=NO;
    model06.messageTime=@"11:22";
    model06.messageText=@"中央军委主席习近平日前签署命令，追授海军某舰载航空兵部队一级飞行员张超“逐梦海天的强军先锋”荣誉称号。2016年4月27日，张超在驾驶歼-15进行陆基模拟着舰训练时，飞机突发电传故障，不幸壮烈牺牲。中央军委号召，全军和武警部队广大官兵要以张超同志为榜样，高举中国特色社会主义伟大旗帜，坚持以邓小平理论、“三个代表”重要思想、科学发展观为指导，深入学习贯彻习主席系列重要讲话精神，团结奋进，锐意创新，扎实工作，为实现强军目标、建设世界一流军队贡献智慧和力量中央军委主席习近平日前签署命令，追授海军某舰载航空兵部队一级飞行员张超“逐梦海天的强军先锋”荣誉称号。2016年4月27日，张超在驾驶歼-15进行陆基模拟着舰训练时，飞机突发电传故障，不幸壮烈牺牲。中央军委号召，全军和武警部队广大官兵要以张超同志为榜样，高举中国特色社会主义伟大旗帜，坚持以邓小平理论、“三个代表”重要思想、科学发展观为指导，深入学习贯彻习主席系列重要讲话精神，团结奋进，锐意创新，扎实工作，为实现强军目标、建设世界一流军队贡献智慧和力量中央军委主席习近平日前签署命令，追授海军某舰载航空兵部队一级飞行员张超“逐梦海天的强军先锋”荣誉称号。2016年4月27日，张超在驾驶歼-15进行陆基模拟着舰训练时，飞机突发电传故障，不幸壮烈牺牲。中央军委号召，全军和武警部队广大官兵要以张超同志为榜样，高举中国特色社会主义伟大旗帜，坚持以邓小平理论、“三个代表”重要思想、科学发展观为指导，深入学习贯彻习主席系列重要讲话精神，团结奋进，锐意创新，扎实工作，为实现强军目标、建设世界一流军队贡献智慧和力量中央军委主席习近平日前签署命令，追授海军某舰载航空兵部队一级飞行员张超“逐梦海天的强军先锋”荣誉称号。2016年4月27日，张超在驾驶歼-15进行陆基模拟着舰训练时，飞机突发电传故障，不幸壮烈牺牲。中央军委号召，全军和武警部队广大官兵要以张超同志为榜样，高举中国特色社会主义伟大旗帜，坚持以邓小平理论、“三个代表”重要思想、科学发展观为指导，深入学习贯彻习主席系列重要讲话精神，团结奋进，锐意创新，扎实工作，为实现强军目标、建设世界一流军队贡献智慧和力量中央军委主席习近平日前签署命令，追授海军某舰载航空兵部队一级飞行员张超“逐梦海天的强军先锋”荣誉称号。2016年4月27日，张超在驾驶歼-15进行陆基模拟着舰训练时，飞机突发电传故障，不幸壮烈牺牲。中央军委号召，全军和武警部队广大官兵要以张超同志为榜样，高举中国特色社会主义伟大旗帜，坚持以邓小平理论、“三个代表”重要思想、科学发展观为指导，深入学习贯彻习主席系列重要讲话精神，团结奋进，锐意创新，扎实工作，为实现强军目标、建设世界一流军队贡献智慧和力量中央军委主席习近平日前签署命令，追授海军某舰载航空兵部队一级飞行员张超“逐梦海天的强军先锋”荣誉称号。2016年4月27日，张超在驾驶歼-15进行陆基模拟着舰训练时，飞机突发电传故障，不幸壮烈牺牲。中央军委号召，全军和武警部队广大官兵要以张超同志为榜样，高举中国特色社会主义伟大旗帜，坚持以邓小平理论、“三个代表”重要思想、科学发展观为指导，深入学习贯彻习主席系列重要讲话精神，团结奋进，锐意创新，扎实工作，为实现强军目标、建设世界一流军队贡献智慧和力量中央军委主席习近平日前签署命令，追授海军某舰载航空兵部队一级飞行员张超“逐梦海天的强军先锋”荣誉称号。2016年4月27日，张超在驾驶歼-15进行陆基模拟着舰训练时，飞机突发电传故障，不幸壮烈牺牲。中央军委号召，全军和武警部队广大官兵要以张超同志为榜样，高举中国特色社会主义伟大旗帜，坚持以邓小平理论、“三个代表”重要思想、科学发展观为指导，深入学习贯彻习主席系列重要讲话精神，团结奋进，锐意创新，扎实工作，为实现强军目标、建设世界一流军队贡献智慧和力量";
    model06.messageSenderType=MessageSenderTypeHantu;
    model06.messageType=MessageTypeText;
    [self.dataSource addObject:model06];
    
    
    
    
    
    MessageModel *model07=[[MessageModel alloc] init];
    model07.showMessageTime=NO;
    model07.messageTime=@"11:22";
    model07.messageText=@"中央军委主席习近平日";
    model07.messageSenderType=MessageSenderTypeUser;
    model07.messageType=MessageTypeText;
    model07.messageSentStatus=MessageSentStatusUnSended;
    [self.dataSource addObject:model07];
    
    
    
    MessageModel *model08=[[MessageModel alloc] init];
    model08.showMessageTime=NO;
    model08.messageTime=@"11:22";
    model08.messageText=@"中";
    model08.messageSenderType=MessageSenderTypeUser;
    model08.messageType=MessageTypeText;
    [self.dataSource addObject:model08];


    MessageModel *model09=[[MessageModel alloc] init];
    model09.showMessageTime=YES;
    model09.messageTime=@"11:22";
    model09.duringTime=9;
    model09.messageSenderType=MessageSenderTypeHantu;
    model09.messageType=MessageTypeImage;
    model09.imageSmall=[UIImage imageNamed:@"WechatIMG4e"];
    [self.dataSource addObject:model09];
    
    
    MessageModel *model10=[[MessageModel alloc] init];
    model10.showMessageTime=YES;
    model10.messageTime=@"11:22";
    model10.duringTime=9;
    model10.messageSenderType=MessageSenderTypeUser;
    model10.messageType=MessageTypeImage;
    model10.messageSentStatus=MessageSentStatusSended;
    model10.messageReadStatus=MessageReadStatusRead;
    model10.imageSmall=[UIImage imageNamed:@"WechatIMG4e"];
    [self.dataSource addObject:model10];
    
    
    
    MessageModel *model0=[[MessageModel alloc] init];
    model0.showMessageTime=YES;
    model0.messageTime=@"11:22";
    model0.duringTime=9;
    model0.messageSenderType=MessageSenderTypeHantu;
    model0.messageType=MessageTypeImage;
    model0.messageSentStatus=MessageSentStatusSended;
    model0.messageReadStatus=MessageReadStatusUnRead;
    model0.imageSmall=[UIImage imageNamed:@"WechatIMG4e"];
    [self.dataSource addObject:model0];

    
    [self.tableView reloadData];
    [self scrollToBottom];
}

/**
 * @brief 添加tableView
 */
- (void)CreatTableView{
    
    UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight - KSafeBottomHeight - KSafeTopeHeight - KeyBoardViewH)];
    
    tableView.separatorColor=[UIColor clearColor];
    
    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    
    tableView.delegate=self;
    
    tableView.dataSource=self;
    
    [tableView registerClass:[WeChatCell class] forCellReuseIdentifier:@"WeChatCell"];
    
    [self.view addSubview:tableView];
    
    self.tableView = tableView;
    
}

/**
 * @brief 添加底部的输入框视图
 */
- (void)SetUpKeyBoardView{
    
    HSQKeyboardView *KeyBoardView = [[HSQKeyboardView alloc] initWithFrame:CGRectMake(0, KScreenHeight - KSafeTopeHeight - KSafeBottomHeight - KeyBoardViewH, KScreenWidth, KeyBoardViewH)];
    
    KeyBoardView.delegate = self; //设置代理方法
    
    [self.view addSubview:KeyBoardView];
    
    self.KeyBoardView = KeyBoardView;
}

/**
 * @brief 选择系统的相册
 */
- (void)SelectTheSystemPhotoAlbumBtnClickAction:(UIButton *)sender{
    
    self.manager.photoMaxNum = 3;
    
    self.manager.rowCount = 4;
    
    self.manager.type = HXPhotoManagerSelectedTypePhoto;
    
    HXPhotoViewController *vc = [[HXPhotoViewController alloc] init];
    
    vc.delegate = self;
    
    vc.manager = self.manager;
    
    [self presentViewController:[[UINavigationController alloc] initWithRootViewController:vc] animated:YES completion:nil];
}

- (void)photoViewControllerDidNext:(NSArray *)allList Photos:(NSArray *)photos Videos:(NSArray *)videos Original:(BOOL)original{

    NSLog(@"photo - %@",photos);
}

- (void)photoViewControllerDidCancel{
    
    NSLog(@"c");
}

/**
 * @brief 选择系统的相机
 */
- (void)SelectTheSystemCameraBtnClickAction:(UIButton *)sender{
    
    HSQLog(@"你点击了相机");
    
    [self pickerImageFromCamera];
}

/**
 * @brief 调用相机，进行拍照
 */
- (void)pickerImageFromCamera{
    
    // 1.判断相机的摄像头是否可以使用(后置).
    BOOL isAvilable = [UIImagePickerController isCameraDeviceAvailable:(UIImagePickerControllerCameraDeviceRear)];
    
    if (isAvilable == NO)
    {
        [[HSQProgressHUDManger Manger] ShowProgressHUDPromptText:@"后置摄像头不可用" SupView:self.view];
        
        return;
    }
    
    UIImagePickerController *imagePick = [[UIImagePickerController alloc]init];
    
    // 设置图片的来源
    imagePick.sourceType = UIImagePickerControllerSourceTypeCamera;
    
    // 允许图片是否编辑.
    imagePick.allowsEditing = YES;
    
    // 设置代理属性.
    imagePick.delegate = self;
    
    [self presentViewController:imagePick animated:YES completion:nil];
}

/**
 * @brief 实现相机代理的方法
 */
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
    
    UIImage *iconImage = [info objectForKey:UIImagePickerControllerEditedImage];
    
    [picker dismissViewControllerAnimated:YES completion:nil];

    MessageModel *model10=[[MessageModel alloc] init];
    model10.showMessageTime=YES;
    model10.messageTime=@"11:22";
    model10.duringTime=9;
    model10.messageSenderType=MessageSenderTypeUser;
    model10.messageType=MessageTypeImage;
    model10.messageSentStatus=MessageSentStatusSended;
    model10.messageReadStatus=MessageReadStatusRead;
    model10.imageSmall=iconImage;
    [self.dataSource addObject:model10];
    
    
    [self.tableView reloadData];
    [self scrollToBottom];
}









/**
 * @brief 键盘的frame改变
 */
- (void)keyboardChangeFrameWithMinY:(CGFloat)minY{
    
    [self scrollToBottom];
    
    // 获取对应cell的rect值（其值针对于UITableView而言）
    NSIndexPath *lastIndex = [NSIndexPath indexPathForRow:self.dataSource.count - 1 inSection:0];
    
    CGRect rect = [self.tableView rectForRowAtIndexPath:lastIndex];
    
    CGFloat lastMaxY = rect.origin.y + rect.size.height;
    
    //如果最后一个cell的最大Y值大于tableView的高度
    if (lastMaxY <= self.tableView.height) {
        
        if (lastMaxY >= minY)
        {
            self.tableView.mj_y = minY - lastMaxY;
        }
        else
        {
            self.tableView.mj_y = 0;
        }
    }
    else
    {
        self.tableView.mj_y += minY - (self.tableView.mj_y + self.tableView.mj_h);
    }
}

/**
 * @brief 系统键盘点击发送时输入框内的文案
 * @param textStr 文案
 */
- (void)textViewContentText:(NSString *)textStr{
    
    MessageModel *model01 =[[MessageModel alloc] init];
    
    model01.showMessageTime=YES;
    
    model01.messageTime=@"11:22";
    
    model01.messageText = textStr;
    
    model01.messageSenderType = MessageSenderTypeUser;
    
    model01.messageType=MessageTypeText;
    
    [self.dataSource addObject:model01];
    
    [self.tableView reloadData];
    [self scrollToBottom];
}

/**
 * @brief 滚动到底部
 */
- (void)scrollToBottom {
    
    if (self.dataSource.count >= 1) {
        
        [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:self.dataSource.count - 1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:NO];
    }
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    
    return 1;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    
     return self.dataSource.count;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    
    return [WeChatCell tableHeightWithModel:self.dataSource[indexPath.row]];
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    
    WeChatCell *cell = [tableView dequeueReusableCellWithIdentifier:@"WeChatCell" forIndexPath:indexPath];
    
    cell.model = self.dataSource[indexPath.row];
    
    cell.delegate = self;
    
    return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

}

/**
 * @brief 聊天图片的点击
 */
- (void)ClickOnTheChatPicture:(UITapGestureRecognizer *)tapGR{
    
    WeChatCell *cell =  (WeChatCell *)tapGR.view.superview.superview;
    
    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
    
    MessageModel *model = self.dataSource[indexPath.row];
    
    HSQLog(@"======%lu",(unsigned long)model.messageSenderType);
}

/**
 * @brief 拖动tableView，取消键盘
 */
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    
    [self.KeyBoardView CancelSystemKeyBoardView];
}


@end
